`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2024/07/24 16:47:47
// Design Name: 
// Module Name: mem_data
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module mem_data(
    clk,reset_n,addr,data_2_exe,op_wr,data
    );
    input clk,reset_n;
    input [31:0] addr,data_2_exe;
    input [1:0] op_wr;
    output reg [31:0] data;

    reg [7:0] mem_data [31:0];

    always @(posedge clk,negedge reset_n) begin
        if(~reset_n) begin
            mem_data[0] = 8'b1;
            mem_data[0] = 8'b1;
            mem_data[0] = 8'b1;
            mem_data[0] = 8'b1;
        end
        else begin
            data <= 32'bx;
            if(op_wr==1'b1)
                data <= mem_data[addr];
            else if(op_wr==1'b0)
                mem_data[addr] <= data_2_exe;
        end
    end
endmodule
